Multi-processor systems have become commonplace in the last few years, enabling multiple concurrent processes in the system to achieve higher speed networking. To achieve optimal use of this architecture, a technology known as Receive Side Scaling (hereinafter “RSS”) may be used to enable receive-processing to scale with the number of available computer processors by allowing the network load from a network controller to be balanced across multiple processors. RSS is described in “Scalable Networking: Eliminating the Receive Processing Bottleneck—Introducing RSS”, WinHEC (Windows Hardware Engineering Conference), Apr. 19, 2005 (hereinafter “the WinHEC Apr. 19, 2005 white paper”). RSS is part of the Network Device Interface Specification (hereinafter “NDIS”) 6.0, available from Microsoft® Windows®. NDIS 6.0 provides for a device driver that enables a single network controller to support multiple network protocols, or that enables multiple network controllers to support multiple network protocols. NDIS 6.0 is currently still in the works, but information about it is available from Microsoft® Corporation of Redmond, Wash.
Systems that implement RSS currently only support a limited number of protocols supported by RSS. For example, in current RSS designs, only IPv4/v6 protocols at Network Layer, and TCP and UDP at Transport Layer, are supported. Generally, packets that conform to one of the supported protocols are hashed to determine which processor will process a given packet, and packets that do not conform to one of the supported protocols are sent to a default processor. Packets that do not conform to one of the supported protocols, therefore, may accumulate and result in bottlenecks of the default processor.